/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ile.Modelo;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

/**
 *
 * @author 
 */


@Entity
public class OrdenTrabajo implements Serializable{
    
    @Id
    @GeneratedValue (strategy=GenerationType.AUTO)
    private Long id;
    @Column
    private String Descripcion;
    @Column
    private int numOT;
    
    @Column
    private String fecha;
    
  
    @ManyToOne(cascade = CascadeType.ALL)
    private Usuario usuario;
    
    
    @OneToMany(mappedBy = "ot")
    private List<Pedido> pedidosOt;
    

    @OneToMany(mappedBy = "otm")
    private List<PedidoMaterial> pedidoMOT;
//    


    public OrdenTrabajo() {
        
        pedidosOt=new ArrayList<Pedido>();
    }
    
    

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getDescripcion() {
        return Descripcion;
    }

    public void setDescripcion(String Descripcion) {
        this.Descripcion = Descripcion;
    }

    public int getNumOT() {
        return numOT;
    }

    public void setNumOT(int numOT) {
        this.numOT = numOT;
    }

    public String getFecha() {
        return fecha;
    }

    public void setFecha(String fecha) {
        this.fecha = fecha;
    }

  
    

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public List<Pedido> getPedidosOt() {
        return pedidosOt;
    }

    public void setPedidosOt(List<Pedido> pedidosOt) {
        this.pedidosOt = pedidosOt;
    }

    public List<PedidoMaterial> getPedidoMOT() {
        return pedidoMOT;
    }

    public void setPedidoMOT(List<PedidoMaterial> pedidoMOT) {
        this.pedidoMOT = pedidoMOT;
    }
    

    

    @Override
    public String toString() {
        return String.valueOf(numOT);  //To change body of generated methods, choose Tools | Templates.
    }
   public void agregarOTH(Pedido pedido) {
          if ((pedido!=null)&& !pedidosOt.contains(pedido)){
            this.pedidosOt.add(pedido);
            pedido.setOt(this);
        }
    }
    
   
      public void agregarOTM(PedidoMaterial pedidoMaterial) {
          if ((pedidoMaterial!=null)&& !pedidoMOT.contains(pedidoMaterial)){
            this.pedidoMOT.add(pedidoMaterial);
            pedidoMaterial.setOtm(this);
        }
    }
}
